﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Services;
using Biciq.Datos;
using Biciq.Logica;
using System.Xml.Serialization;

namespace Biciq.Servicios
{
    /// <summary>
    /// Summary description for BiciqMobileServicios
    /// </summary>
    [WebService(Namespace = "http://tempuri.org/")]
    [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
    [System.ComponentModel.ToolboxItem(false)]
    // To allow this Web Service to be called from script, using ASP.NET AJAX, uncomment the following line. 
    // [System.Web.Script.Services.ScriptService]
    public class BiciqMobileServicios : System.Web.Services.WebService
    {
        [XmlInclude(typeof(Empleado))]
        [XmlInclude(typeof(Estacion))] 
        [WebMethod]
        public Result Ingresar(string codigoUsuario, int numeroEstacion)
        {
            return MobileServicios.Instance.Ingresar(codigoUsuario, numeroEstacion);
        }
         [WebMethod]

        public Empleado ConsultarEmpleadoPorId(Guid IdEmpleado)
        {
            return MobileServicios.Instance.ConsultarEmpleadoPorId(IdEmpleado);
        }

         [WebMethod]
        public Estacion ConsultarEstacionPorId(Guid IsEstacion)
        {
            return MobileServicios.Instance.ConsultarEstacionPorId(IsEstacion);
        }
         [WebMethod]
         public Result IniciarOperacion(Guid IdUsuario, Guid IdEstacion, List<string> bicicletas, string observaciones)
         {
             return MobileServicios.Instance.IniciarOperacion(IdUsuario, IdEstacion,bicicletas, observaciones);
         }

         [WebMethod]
         public Result PrestamoBicileta(Guid IdUsuario, Guid IdEstacion, string CodigoBicicleta, string codigoCliente)
         {
             return MobileServicios.Instance.PrestamoBicileta(IdUsuario, IdEstacion, CodigoBicicleta, codigoCliente);
         }

         [WebMethod]
         public Result DevolucionBicileta(Guid IdUsuario, Guid IdEstacion, string CodigoBicicleta, string codigoCliente)
         {
             return MobileServicios.Instance.DevolucionBicileta(IdUsuario, IdEstacion, CodigoBicicleta, codigoCliente);
         }

        [WebMethod]
         public Cliente ConsultarClientePorId(Guid IdCliente)
         {
             return MobileServicios.Instance.ConsultarClientePorId(IdCliente);
         }

          [WebMethod]
        public Result BalanceoEntrega(Guid IdUsuario, Guid IdEstacion,string  codigoUsuarioRecibe, List<string> bicicletas)
        {
            return MobileServicios.Instance.BalanceoEntrega(IdUsuario, IdEstacion, codigoUsuarioRecibe, bicicletas);
        }

          [WebMethod]
          public Result BalanceoEntregar(Guid IdUsuario, Guid IdEstacion, List<string> bicicletas)
          {
              return MobileServicios.Instance.BalanceoEntregar(IdUsuario, IdEstacion,  bicicletas);
          }

          [WebMethod]
          public Result BalanceoRecibir(Guid IdUsuario, Guid IdEstacion,  List<string> bicicletas)
          {
              return MobileServicios.Instance.BalanceoRecibir(IdUsuario, IdEstacion,  bicicletas);
          }

          [WebMethod]
          public Result BalanceoRecepcion(Guid IdUsuario, Guid IdEstacion, string codigoUsuarioRecibe, List<string> bicicletas)
          {
              return MobileServicios.Instance.BalanceoRecepcion(IdUsuario, IdEstacion, codigoUsuarioRecibe, bicicletas);
          }

          [WebMethod]
          public Result PersonsNoAtendidas(Guid IdUsuario, Guid IdEstacion, string cliente, string observacion)
          {
              return MobileServicios.Instance.PersonsNoAtendidas(IdUsuario, IdEstacion, cliente, observacion);
          }

          [WebMethod]
          public Result CierreDia(Guid IdUsuario, Guid IdEstacion, List<string> bicicletas, string observacion1)
          {
              return MobileServicios.Instance.CierreDia(IdUsuario, IdEstacion, bicicletas, observacion1);
          }
          
        
            [WebMethod]
          public List<Bicicleta> ObtenerBicicletas(Guid idEstacion)
          {
              return MobileServicios.Instance.ObtenerBicicletas(idEstacion);
          }


            [WebMethod]
            public Result SalirAplicacion(Guid IdUsuario, Guid IdEstacion)
            {
                return MobileServicios.Instance.SalirAplicacion(IdUsuario, IdEstacion);
            }
    }
}
